#pragma once

#include "ogr_api.h"
#include "pointGeometry.h"
#include "MapLayerEnvelope.h"
#include "MapLayerDrawProperties.h"

class CDrawer;
class CMapLayer;

class CMapLayer
{
public:
	CMapLayer(){};
	virtual ~CMapLayer();
	virtual bool draw(CDrawer* pDrawer) = 0;
	CMapLayerEnvelope getLayerEnvelope(){return m_layerEnvelope;}
	OGRSpatialReferenceH getLayerCRS(){return m_crs;};
    void setDrawProperties(CMapLayerDrawProperties drawProperties);
    CMapLayerDrawProperties getDrawProperties();
    TCHAR* getLayerName(){return m_layerName;}
protected:
	CString m_layerPath;
    TCHAR* m_layerName;
	CMapLayerEnvelope m_layerEnvelope;
	OGRSpatialReferenceH m_crs;
    CMapLayerDrawProperties m_drawProperties;
};
